<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Promise关键问题 - 中断 Promise 链条</title>
</head>
<body>
    <script>
        /**
         *  中断 promise 链?
            (1) 当使用 promise 的 then 链式调用时, 在中间中断, 不再调用后面的回调函数
            (2) 办法: 在回调函数中返回一个 pendding 状态的 promise 对象 
         */

        let p=new Promise((resovle,reject)=>{
            resovle();
        });

        p.then(value=>{
            console.log(111);
        }).then(value=>{
            console.log(222);
            //中断 promise 链,有且只有一种方式:在回调函数中返回一个 pendding 状态的 promise 对象 
            return new Promise(()=>{});
        }).then(value=>{
            console.log(333);
        }).catch(reason=>{
            console.warn(reason);   //只需要在最后指定一个失败的回调即可,中间任何环节出了问题都由最后的catch捕获
        });
    </script>
</body>
</html>